import Vue from 'vue'
import VueI18n from 'vue-i18n'
import elenUS from 'element-ui/lib/locale/lang/en'
import elzhCN from 'element-ui/lib/locale/lang/zh-CN'
import vxeEnUS from 'vxe-table/lib/locale/lang/en-US'
import vxeZhCN from 'vxe-table/lib/locale/lang/zh-CN'
import storage from '@/common/storage'

Vue.use(VueI18n)

// 定义支持的两种语言 中文和英文
const languages = [
    {value: 'en-US', label: 'English', el: elenUS, vxe: {...vxeEnUS}},
    {value: 'zh-CN', label: '简体中文', el: elzhCN, vxe: {...vxeZhCN}},
]
const messages = {}

// combine admin and oj
// 合并admin和oj的 en-US 和 zh-CN文件
for (let lang of languages) {
    let locale = lang.value
    // require 动态加在oj目录下的 语言文件  oj/en-US.js    ob/zh-CN.js
    let m = require(`./oj/${locale}`).m
    // 将admini下的语言文件合并到oj语言文件
    Object.assign(m, require(`./admin/${locale}`).m)
    let ui = Object.assign(lang.vxe, lang.el)
    messages[locale] = Object.assign({m: m}, ui);
}


// load language packages
export default new VueI18n({
    // 初始化语言,如果storage有语言则使用storage的，没有则使用 zh-CN
    locale: storage.get('Web_Language') || 'zh-CN',
    messages: messages
})

export {languages}
